home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / colors.zip / COLORS.PRG < prev    next >
Text File  |  1993-01-04  |  22KB  |  632 lines

  1. * THIS PROGRAM REQUIRES PROFESSION CLIPPER LIBRARY VERSION 2 (PROCLIP2)
  2. * A SHAREWARE PROGRAM.
  3. * COMPILING:
  4. *   CLIPPER COLORS
  5. *   TLINK COLORS,,,CLIPPER+EXTEND+PROCLIP2
  6. *   (or your own linker)
  7.  
  8. *:*********************************************************************
  9. *:
  10. *:        Program: COLORS.PRG
  11. *:
  12. *:         Author: G.PREFONTAINE
  13. *:
  14. *:    Description: An interactive color-setting routine. Written to learn
  15. *:                 how to use PROCLIP2. Uses MEM files COLORS.MEM and
  16. *:                 COLVARS.MEM. Stores selected color strings in COLORS.MEM
  17. *:                 which may be restored and used by your program.
  18. *:                 Screen objects dealt with are:
  19. *:                   Main Display Screen
  20. *:                         C_NORMCOL - Normal Display Colors
  21. *:                         C_NORMMENU - Normal Menu Colors
  22. *:                   Help Box
  23. *:                         C_HELPCOL - Help Box Colors
  24. *:                   Lookup/Scroll Box
  25. *:                         C_SCROLCOL - Lookup Box Colors
  26. *:                   Dialog Box
  27. *:                         C_POPCOL - Dialog Box Colors
  28. *:                         C_POPMENU - Dialog Box Menu Colors
  29. *:
  30. *:                 Use it if you care to.
  31. *:
  32. *:
  33. *:*********************************************************************
  34. * DEMO
  35. * this is how it would be called from a program
  36. colorset()
  37. return
  38. * of course the screen would need to be re-painted afterwards
  39. **************************************************************************
  40.  
  41.  
  42. FUNCTION COLORSET
  43. SAVE SCREEN TO PRECOL
  44. SET COLOR TO W/N
  45. CLEAR
  46. PRIVATE fgstart,bgstart,instart
  47.  
  48. declare mainmen[5]             && main menu
  49. mainmen[1]='Main Screen'
  50. mainmen[3]='Scroll Box'
  51. mainmen[4]='Help Box  '
  52. mainmen[2]='Dialog Box'
  53. mainmen[5]='Quit      '
  54.  
  55. declare sel1men[4]              && display selector
  56. sel1men[1]='Display '
  57. sel1men[2]='User Input'
  58. sel1men[3]='Other Fields'
  59. sel1men[4]='Menu Hilite'
  60.  
  61. declare sel2men[2]              && scroll selector
  62. sel2men[1]='Display '
  63. sel2men[2]='Menu Hilite'
  64.  
  65.  
  66. declare sel3men[1]              && help selector
  67. sel3men[1]='Display '
  68.  
  69.  
  70. declare sel4men[4]              && DIALOG selector
  71. sel4men[1]='Display '
  72. sel4men[2]='User Input'
  73. sel4men[3]='Other Fields'
  74. sel4men[4]='Hilite'
  75.  
  76.  
  77. declare fgcol[8]                && foreground colors
  78. fgcol[1]= "Black"
  79. fgcol[2]= "Blue"
  80. fgcol[3]= "Green"
  81. fgcol[4]= "Cyan"
  82. fgcol[5]= "Red"
  83. fgcol[6]= "Magenta"
  84. fgcol[7]= "Yellow"
  85. fgcol[8]= "White"
  86.  
  87. declare fgcode[8]       && fg codes
  88. fgcode[1]= "N"
  89. fgcode[2]= "B"
  90. fgcode[3]= "G"
  91. fgcode[4]= "BG"
  92. fgcode[5]= "R"
  93. fgcode[6]= "RB"
  94. fgcode[7]= "GR"
  95. fgcode[8]= "W"
  96.  
  97. declare bgcol[8]        &&bg colors
  98. bgcol[1]= "Black"
  99. bgcol[2]= "Blue"
  100. bgcol[3]= "Green"
  101. bgcol[4]= "Cyan"
  102. bgcol[5]= "Red"
  103. bgcol[6]= "Magenta"
  104. bgcol[7]= "Brown"
  105. bgcol[8]= "White"
  106.  
  107. declare bgcode[8]        && be codes
  108. bgcode[1]= "N"
  109. bgcode[2]= "B"
  110. bgcode[3]= "G"
  111. bgcode[4]= "BG"
  112. bgcode[5]= "R"
  113. bgcode[6]= "RB"
  114. bgcode[7]= "GR"
  115. bgcode[8]= "W"
  116.  
  117. declare inten[2]         && intensities
  118. inten[1]="Low"
  119. inten[2]="High"
  120.  
  121. declare intcode[2]       && intensity codes
  122. intcode[1]=""
  123. intcode[2]="+"
  124.  
  125.  
  126. declare quitmen[3]       && quit menu choices
  127. quitmen[1]="Save colors"
  128. quitmen[2]="Don't save"
  129. quitmen[3]="Abort quit"
  130.  
  131.  
  132.  
  133. ** initial colors - should be gotten from an .mem file
  134. if file("COLVARS.mem")
  135.         restore from colvars.mem additive
  136. else
  137.        STORE "W" TO cwdf               && display fg
  138.        STORE "N" TO cwdb               && display bg
  139.        store '' to cwdi                && display intensity
  140.        *
  141.        STORE "N"  TO cwif              && input
  142.        STORE "W"  TO cwib              && input
  143.        store '' to cwii
  144.        *
  145.        STORE "+W" TO cwff              && input fields
  146.        STORE "N" TO cwfb              && input fields
  147.        store '' to cwfi
  148.        *
  149.        STORE "N" TO cwhf               && hilite
  150.        STORE "W" TO cwhb               && hilite
  151.        store '' to cwhi
  152.        *
  153.  
  154.        STORE "N" TO chdf               && help display
  155.        STORE "W" TO chdb               && help display
  156.        store '' to chdi
  157.        *
  158.        STORE "W" TO cbdf               && scroll display
  159.        STORE "N" TO cbdb               && scroll display
  160.        store '' to cbdi
  161.        *
  162.        STORE "N" TO cbhf               && scroll hilite
  163.        STORE "W" TO cbhb               && scroll hilite
  164.        store '' to cbhi
  165.        *
  166.        STORE "W" TO cadf               && dialog display fg
  167.        STORE "N" TO cadb               && dialog display bg
  168.        store '' to cadi                && dialog display intensity
  169.        *
  170.        STORE "N"  TO caif              && dialog input
  171.        STORE "W"  TO caib              && input
  172.        store '' to caii
  173.        *
  174.        STORE "+W" TO caff              && input fields
  175.        STORE "N" TO cafb              && input fields
  176.        store '' to cafi
  177.        *
  178.        STORE "N" TO cahf               && hilite
  179.        STORE "W" TO cahb               && hilite
  180.        store '' to cahi
  181.        *
  182. endif
  183. initsay()                       && say screen
  184. mbcol()         && color main
  185. hbcol()         && color help
  186. sbcol()         && color scroll
  187. dbcol()         && color dialog
  188. null = ''
  189.  
  190.  
  191.  
  192. *** main program segment start
  193. do while .t.            && main do-while
  194.      SET COLOR TO +W/N,+GR/B
  195.      @16,4 clear to 22,17
  196.      screensel = achoice(16,04,22,17,mainmen,null,'menuudf')
  197.      @16,4 clear to 22,17
  198.      @16,4 SAY MAINMEN[SCREENSEL]
  199.      do while .t.       && screen element selection
  200.              @16,19 CLEAR TO 20,34
  201.              do case
  202.                 case screensel = 1      && main display
  203.                      elemsel = achoice(16,19,20,34,sel1men,null,'menuudf')
  204.                 case screensel = 2      && dialog display
  205.                      elemsel = achoice(16,19,20,34,sel4men,null,'menuudf')
  206.                 case screensel = 3      && scroll display
  207.                      elemsel = achoice(16,19,20,34,sel2men,null,'menuudf')
  208.                 case screensel = 4      && help display
  209.                      elemsel = achoice(16,19,20,34,sel3men,null,'menuudf')
  210.                 case screensel = 5
  211.                      @16,04 clear to 19,17
  212.                      qchoice = achoice(16,04,19,17,quitmen,null,'menuudf')
  213.                      do case
  214.                         case qchoice = 1
  215.                              STORECOL()
  216.                              RESTORE SCREEN FROM PRECOL
  217.                              SET KEY 28 TO HELPGET
  218.                              SET KEY -30 TO HELPEDIT
  219.                              RETURN ''
  220.                         case qchoice = 2
  221.                              RESTORE SCREEN FROM PRECOL
  222.                              SET KEY 28 TO HELPGET
  223.                              SET KEY -30 TO HELPEDIT
  224.                              RETURN ''
  225.                         case qchoice = 3
  226.                             @16,04 clear to 19,17
  227.                             EXIT
  228.                      endcase
  229.              endcase
  230.              @16,19 CLEAR TO 20,34
  231.              DO CASE
  232.                 case screensel = 1      && main display
  233.                      @16,19 SAY SEL1MEN[elemsel]
  234.                 case screensel = 3      && scroll display
  235.                      @16,19 SAY SEL2MEN[elemsel]
  236.                 case screensel = 4      && help display
  237.                      @16,19 SAY SEL3MEN[elemsel]
  238.                 case screensel = 2      && dialog display
  239.                      @16,19 SAY SEL4MEN[elemsel]
  240.              ENDCASE
  241.              LK = LASTKEY()
  242.              IF LK = 19
  243.                 EXIT
  244.              ENDIF
  245.              SETTER = 1
  246.              NULL = ''
  247. *             @24,37 SAY  "[USE "+chr(24)+chr(25)+chr(26)+chr(27)+" - ENTER WHEN DONE]"
  248.              stchoice()
  249.              do while .t.
  250.                 DO CASE
  251.                  CASE SETTER = 1
  252.                     Bgchoice=achoice(16,37,23,50,Bgcol,null,"doset",bgstart)
  253.                  CASE SETTER = 2
  254.                     Fgchoice=achoice(16,54,23,67,Fgcol,null,"doset",fgstart)
  255.                  CASE SETTER = 3
  256.                    intchoice=achoice(16,68,17,74,inten,null,"doset",instart)
  257.                  ENDCASE
  258.                  RKEY = LASTKEY()
  259.                  MAIN = .F.
  260.                  DO CASE
  261.                         CASE RKEY = 13    && <> ENTER
  262.                            EXIT
  263.                         case rkey = 4 .and. setter = 3
  264.                            exit
  265.                         case rkey = 19 .and. setter = 1
  266.                            exit
  267.                         CASE RKEY = 19    && LEFT ARROW
  268.                            SETTER = IIF(SETTER=1,3,SETTER - 1)
  269.                         OTHERWISE
  270.                            SETTER = IIF(SETTER=3,1,SETTER + 1)
  271.                  ENDCASE
  272.               enddo
  273.  
  274.      enddo
  275. enddo
  276. **** main program segment end
  277.  
  278.  
  279.  
  280.         
  281. *****************USER DEFINED FUNCTIONS*****************
  282. function doset
  283. param M_mode,M_elem
  284. if m_mode =1 .or. m_mode = 2
  285.         return 2
  286. endif
  287. if M_mode =3
  288.         lk = lastkey()
  289.         if (lk > 64 .and. lk < 91) .or. (lk > 97 .and. lk < 123)
  290.                 return 3
  291.         endif
  292.         return 1
  293. endif
  294. do case
  295.         case screensel = 1      && main
  296.            do case
  297.                 case elemsel = 1        &&display
  298.                        do case
  299.                                 case setter = 2         && foreg
  300.                                         cwdf= fgcode[m_elem]
  301.                                 case setter = 1         && backg
  302.                                         cwdb= bgcode[m_elem]
  303.                                 case setter = 3         && intense
  304.                                         cwdi =intcode[m_elem]
  305.                        endcase
  306.                 case elemsel = 2        &&input
  307.                        do case
  308.                                 case setter = 2         && foreg
  309.                                         cwif= fgcode[m_elem]
  310.                                 case setter = 1         && backg
  311.                                         cwib= bgcode[m_elem]
  312.                                 case setter = 3         && intense
  313.                                         cwii =intcode[m_elem]
  314.                        endcase
  315.                 case elemsel = 3        &&field input
  316.                        do case
  317.                                 case setter = 2         && foreg
  318.                                         cwff= fgcode[m_elem]
  319.                                 case setter = 1         && backg
  320.                                         cwfb= bgcode[m_elem]
  321.                                 case setter = 3         && intense
  322.                                         cwfi =intcode[m_elem]
  323.                        endcase
  324.                 case elemsel = 4        &&hilite
  325.                        do case
  326.                                 case setter = 2         && foreg
  327.                                         cwhf= fgcode[m_elem]
  328.                                 case setter = 1         && backg
  329.                                         cwhb= bgcode[m_elem]
  330.                                 case setter = 3         && intense
  331.                                         cwhi =intcode[m_elem]
  332.                        endcase
  333.            endcase
  334.            mbcol()
  335.         case screensel = 3      && scroll
  336.            do case
  337.                 case elemsel = 1        &&display
  338.                        do case
  339.                                 case setter = 2         && foreg
  340.                                         cbdf= fgcode[m_elem]
  341.                                 case setter = 1         && backg
  342.                                         cbdb= bgcode[m_elem]
  343.                                 case setter = 3         && intense
  344.                                         cbdi =intcode[m_elem]
  345.                        endcase
  346.                 case elemsel = 2        &&hilite
  347.                        do case
  348.                                 case setter = 2         && foreg
  349.                                         cbhf= fgcode[m_elem]
  350.                                 case setter = 1         && backg
  351.                                         cbhb= bgcode[m_elem]
  352.                                 case setter = 3         && intense
  353.                                         cbhi =intcode[m_elem]
  354.                        endcase
  355.            endcase
  356.            sbcol()
  357.            * color scroll win
  358.         case screensel = 4      && help
  359.            do case
  360.                 case elemsel = 1        &&display
  361.                        do case
  362.                                 case setter = 2         && foreg
  363.                                         chdf= fgcode[m_elem]
  364.                                 case setter = 1         && backg
  365.                                         chdb= bgcode[m_elem]
  366.                                 case setter = 3         && intense
  367.                                         chdi =intcode[m_elem]
  368.                        endcase
  369.            endcase
  370.            hbcol()
  371.         case screensel = 2      && dialog
  372.            do case
  373.                 case elemsel = 1        &&display
  374.                        do case
  375.                                 case setter = 2         && foreg
  376.                                         cadf= fgcode[m_elem]
  377.                                 case setter = 1         && backg
  378.                                         cadb= bgcode[m_elem]
  379.                                 case setter = 3         && intense
  380.                                         cadi =intcode[m_elem]
  381.                        endcase
  382.                 case elemsel = 2        &&input
  383.                        do case
  384.                                 case setter = 2         && foreg
  385.                                         caif= fgcode[m_elem]
  386.                                 case setter = 1         && backg
  387.                                         caib= bgcode[m_elem]
  388.                                 case setter = 3         && intense
  389.                                         caii =intcode[m_elem]
  390.                        endcase
  391.                 case elemsel = 3        &&field input
  392.                        do case
  393.                                 case setter = 2         && foreg
  394.                                         caff= fgcode[m_elem]
  395.                                 case setter = 1         && backg
  396.                                         cafb= bgcode[m_elem]
  397.                                 case setter = 3         && intense
  398.                                         cafi =intcode[m_elem]
  399.                        endcase
  400.                 case elemsel = 4        &&hilite
  401.                        do case
  402.                                 case setter = 2         && foreg
  403.                                         cahf= fgcode[m_elem]
  404.                                 case setter = 1         && backg
  405.                                         cahb= bgcode[m_elem]
  406.                                 case setter = 3         && intense
  407.                                         cahi =intcode[m_elem]
  408.                        endcase
  409.            endcase
  410.            dbcol()
  411. endcase
  412. return 2
  413.  
  414. function mbcol          && COLOR MAIN
  415. newcolor(0,0,11,19,cwdi+cwdf+'/'+cwdb)
  416. newcolor(0,39,11,39,cwdi+cwdf+'/'+cwdb)
  417. newcolor(0,59,11,61,cwdi+cwdf+'/'+cwdb)
  418. boxcolor(0,0,11,79,cwdi+cwdf+'/'+cwdb)
  419.  
  420. NEWCOLOR(1,3,1,7,cwhi+cwhf+'/'+cwhb)
  421. newcolor (6,9,6,18,cwii+cwif+'/'+cwib)
  422. newcolor (5,9,5,19,cwfi+cwff+'/'+cwfb)
  423. return ''
  424.  
  425. function hbcol          && COLOR HELP BOX
  426. newcolor(1,62,10,78,chdi+chdf+'/'+chdb)
  427. return ''
  428.  
  429. function sbcol          && COLOR SCROLL BOX
  430. NEWCOLOR(1,40,10,58,cbdi+cbdf+'/'+cbdb)
  431. newcolor(6,42,6,57,cbhi+cbhf+'/'+cbhb)
  432. return ''
  433.  
  434. function dbcol          && dialog box
  435. newcolor(1,20,10,38,cadi+cadf+'/'+cadb)
  436. newcolor(7,23,7,34,caii+caif+'/'+caib)
  437. newcolor(8,23,8,34,cafi+caff+'/'+cafb)
  438. newcolor(9,23,9,34,cahi+cahf+'/'+cahb)
  439. return ''
  440.  
  441.  
  442. function initsay
  443. @ 03,00 CLEAR TO 11,79
  444. @ 03,00 TO 11,79
  445. @ 00,02 SAY "[D.1.7.]"
  446. @ 05,01 SAY "Number"
  447. @ 06,01 SAY "Name"
  448. @ 06,09 say "JONES,FRED"
  449. @ 05,09 say "123-45-7890"
  450. @ 00,00 TO 03,79
  451. @ 00,09 SAY "Main Screen Sample"
  452. @ 03,00 SAY "├"
  453. @ 03,79 SAY "│"
  454. @ 01,01 CLEAR TO 02,78
  455. @ 01,03 SAY "FIRST"
  456. @ 01,10 SAY "LAST "
  457. @ 01,40 CLEAR TO 10,58
  458. @ 01,40 TO 10,58
  459. @ 01,43 SAY "SCROLL BOX"
  460. @ 02,42 SAY "JONES,EDDIE"
  461. @ 03,42 SAY "JONES,FRED"
  462. @ 04,42 SAY "KRAMDEN,RALPH"
  463. @ 05,42 SAY "MOSS,BOB"
  464. @ 07,42 SAY "POPPIN,MARY"
  465. @ 08,42 SAY "QUESEDA,JOSE"
  466. @ 09,42 SAY "SMITH,JOHN"
  467. @ 01,62 CLEAR TO 10,78
  468. @ 01,62 TO 10,78
  469. @ 01,65 SAY "HELP BOX"
  470. @ 02,64 SAY "This is a"
  471. @ 03,64 SAY "help window."
  472. @ 05,64 SAY "Press a key"
  473. @ 06,64 SAY "to return to"
  474. @ 07,64 SAY "the program."
  475. @ 06,42 SAY "NEWTON,ISAAC    "
  476. @ 12,00 TO 24,79
  477. @1,20 clear to 10,38
  478. @1,20 to 10,38
  479. @1,23 say "DIALOG BOX"
  480. @2,23 SAY "This is a      "
  481. @3,23 say "window used    "
  482. @4,23 say "for dialog with"
  483. @5,23 say "the user.     "
  484. @7,23 say "USER INPUT    "
  485. @8,23 say "OTHER FIELDS  "
  486. @9,23 say "MENU HILITE   "
  487.  
  488. selecsay()
  489.  
  490.  
  491. function selecsay
  492. set color to +W/N,+GR/B
  493. @ 12,00,24,79 BOX "┌─┐│┘─└│ "
  494.  
  495. @ 12,20 SAY "COLOR SELECTION BOX"
  496. @ 13,01 CLEAR TO 23,78
  497. @ 14,04 SAY "SCREEN:        ELEMENT:          BACKGROUND       FOREGROUND    INTENSITY"
  498. @ 16,54 SAY "Black"
  499. @ 17,54 SAY "Blue"
  500. @ 18,54 SAY "Green"
  501. @ 19,54 SAY "Cyan"
  502. @ 20,54 SAY "Red"
  503. @ 21,54 SAY "Magenta"
  504. @ 22,54 SAY "Brown"
  505. @ 23,54 SAY "White"
  506. @ 16,04 SAY "Main Screen "
  507. @ 17,04 SAY "Scroll Box  "
  508. @ 16,37 SAY "Black     "
  509. @ 16,54 SAY "Black     "
  510. @ 16,68 SAY "Low    "
  511. @ 17,37 SAY "Blue      "
  512. @ 17,54 SAY "Blue      "
  513. @ 17,68 SAY "High   "
  514. @ 18,04 SAY "Help Box    "
  515. @ 19,04 SAY "Quit        "
  516. @ 18,37 SAY "Green     "
  517. @ 18,54 SAY "Green     "
  518. @ 19,37 SAY "Cyan      "
  519. @ 19,54 SAY "Cyan      "
  520. @ 20,37 SAY "Red       "
  521. @ 20,54 SAY "Red       "
  522. @ 21,37 SAY "Magenta   "
  523. @ 21,54 SAY "Magenta   "
  524. @ 22,37 SAY "Brown     "
  525. @ 22,54 SAY "Yellow    "
  526. @ 23,37 SAY "White     "
  527. @ 23,54 SAY "White     "
  528.  
  529. function menuudf
  530. param a_mode,a_elem
  531. if a_mode < 3
  532.         return 2
  533. else
  534.         lk = lastkey()
  535.         if (lk > 64 .and. lk < 91) .or. (lk > 97 .and. lk < 123)
  536.                 KEYBOARD CHR(13)
  537.                 return 3
  538.         endif
  539.         return 1
  540. endif
  541.  
  542.  
  543. FUNCTION STORECOL
  544.  
  545. CWD = CWDI+CWDF+'/'+CWDB
  546. CWI = CWII+CWIF+'/'+CWIB
  547. CWF = CWFI+CWFF+'/'+CWFB
  548. CWH = CWHI+CWHF+'/'+CWHB
  549. CHD = CHDI+CHDF+'/'+CHDB
  550. CBD = CBDI+CBDF+'/'+CBDB
  551. CBH = CBHI+CBHF+'/'+CBHB
  552. CAD = CADI+CADF+'/'+CADB
  553. CAI = CAII+CAIF+'/'+CAIB
  554. CAF = CAFI+CAFF+'/'+CAFB
  555. CAH = CAHI+CAHF+'/'+CAHB
  556.  
  557. * HERE IS THE FINAL OUTPUT
  558. c_NORMCOL = "&CWD"+','+"&CWI"+',N,N,'+"&CWF"
  559. c_NORMmenu= "&CWD"+','+"&CWh"+',N,N,'+"&CWF"
  560. c_HELPCOL = "&CHD"+','+"&CHD"+',N,N,N'
  561. c_SCROLCOL = "&CBD"+','+"&CBH"+',N,N,N'
  562. c_POPCOL = "&CAD"+','+"&CAI"+',N,N,'+"&CAF"
  563. c_POPMENU = "&CAD"+','+"&CAH"+',N,N,'+"&CAF"
  564.  
  565. save to colvars.mem all like c???
  566. SAVE TO COLORS.MEM  ALL LIKE C_*
  567.  
  568. RETURN ''
  569.  
  570.  
  571.  
  572. FUNCTION STCHOICE
  573. DO CASE
  574.         CASE SCREENSEL = 1
  575.            DO CASE
  576.                 CASE ELEMSEL = 1
  577.                         bgstart = ascan(bgcode,"&cwdb")
  578.                         fgstart = ascan(fgcode,"&cwdf")
  579.                         instart = ascan(intcode,"&cwdi")
  580.                 CASE ELEMSEL = 2
  581.                         bgstart = ascan(bgcode,"&cwib")
  582.                         fgstart = ascan(fgcode,"&cwif")
  583.                         instart = ascan(intcode,"&cwii")
  584.                 CASE ELEMSEL = 3
  585.                         bgstart = ascan(bgcode,"&cwfb")
  586.                         fgstart = ascan(fgcode,"&cwff")
  587.                         instart = ascan(intcode,"&cwfi")
  588.                 CASE ELEMSEL = 4
  589.                         bgstart = ascan(bgcode,"&cwhb")
  590.                         fgstart = ascan(fgcode,"&cwhf")
  591.                         instart = ascan(intcode,"&cwhi")
  592.            endcase
  593.         CASE SCREENSEL = 2      && dialog
  594.            do case
  595.                 CASE ELEMSEL = 1
  596.                         bgstart = ascan(bgcode,"&cadb")
  597.                         fgstart = ascan(fgcode,"&cadf")
  598.                         instart = ascan(intcode,"&cadi")
  599.                 CASE ELEMSEL = 2
  600.                         bgstart = ascan(bgcode,"&caib")
  601.                         fgstart = ascan(fgcode,"&caif")
  602.                         instart = ascan(intcode,"&caii")
  603.                 CASE ELEMSEL = 3
  604.                         bgstart = ascan(bgcode,"&cafb")
  605.                         fgstart = ascan(fgcode,"&caff")
  606.                         instart = ascan(intcode,"&cafi")
  607.                 CASE ELEMSEL = 4
  608.                         bgstart = ascan(bgcode,"&cahb")
  609.                         fgstart = ascan(fgcode,"&cahf")
  610.                         instart = ascan(intcode,"&cahi")
  611.            endcase
  612.         CASE SCREENSEL = 3              && scroll
  613.            do case
  614.                 CASE ELEMSEL = 1
  615.                         bgstart = ascan(bgcode,"&cbdb")
  616.                         fgstart = ascan(fgcode,"&cbdf")
  617.                         instart = ascan(intcode,"&cbdi")
  618.                 CASE ELEMSEL = 2
  619.                         bgstart = ascan(bgcode,"&cbhb")
  620.                         fgstart = ascan(fgcode,"&cbhf")
  621.                         instart = ascan(intcode,"&cbhi")
  622.            endcase
  623.         CASE SCREENSEL = 4              && help
  624.            do case
  625.                 CASE ELEMSEL = 1
  626.                         bgstart = ascan(bgcode,"&chdb")
  627.                         fgstart = ascan(fgcode,"&chdf")
  628.                         instart = ascan(intcode,"&chdi")
  629.            endcase
  630. ENDCASE
  631. return ''
  632.